Wireless communication systems are well known in the art. Generally, such systems comprise communication stations that transmit and receive wireless communication signals between each other. Typically, base stations are provided which are capable of conducting wireless concurrent communications with a plurality of subscriber stations. In Code Division Multiple Access (CDMA) systems specified by the Third Generation Partnership Project (3GPP), base stations are called Node Bs, subscriber stations are called User Equipments (UE) and the wireless interface between the Node Bs and UEs is known as the Uu interface. FIG. 1 illustrates a typical 3GPP CDMA system.
The Uu radio interface of a 3GPP communications system uses Transport Channels (TrCH) for transfer of user data and signaling between UEs and Node Bs. In 3GPP Time Division Duplex (TDD) communications, TrCH data is conveyed by one or more physical channels defined by mutually exclusive physical resources. TrCH data is transferred in sequential groups of Transport Blocks (TB) defined as Transport Block Sets (TBS). Each TBS is transmitted in a given Transmission Time Interval (TTI) which may span a plurality of consecutive system time frames. A typical system time frame is 10 milliseconds and TTIs are currently specified as spanning 1, 2, 4 or 8 of such time frames.
FIG. 2 illustrates the processing of TrCHs in TTD mode into a Coded Composite TrCH (CCTrCH) and then into one or more physical channel data streams in accordance with 3GPP TS 25.222 v3.8.0. Starting with the TB of data, Cyclic Redundancy Check (CRC) bits are attached and TB concatenation and code block segmentation is performed. Convolution coding or turbo coding is then performed, but in some instances no coding is specified. The steps after coding, include radio frame equalization, a first interleaving, radio frame segmentation and rate matching. The radio frame segmentation divides the data over the number of frames in the specified TTI. The rate matching function operates by means of bit repetition or puncturing and defines the number of bits for each processed TrCH which are thereafter multiplexed to form a CCTrCH data stream.
The processing of the CCTrCH data stream includes bit scrambling, physical channel segmentation, a second interleaving and mapping onto one or more physical channels. The number of physical channels corresponds to the physical channel segmentation. For uplink transmissions, UE to Node B, the maximum number of physical channels for transmission of a CCTrCH is currently specified as two. For downlink transmissions, Node B to UEs, the maximum number of physical channels for transmission of a CCTrCH is currently specified as sixteen. Each physical channel data stream is then spread with a channelization code and modulated for over air transmission on an assigned frequency.
In the reception/decoding of the TrCH data, the processing is essentially reversed by the receiving station. Accordingly, UE and Node B physical reception of TrCHs require knowledge of TrCH processing parameters to reconstruct the TBS data. For each TrCH, a Transport Format Set (TFS) is specified containing a predetermined number of Transport Formats (TF). Each TF specifies a variety of dynamic parameters, including TB and TBS sizes, and a variety of semi static parameters, including TTI, coding type, coding rate, rate matching parameter and CRC length. The predefined collection of TFSs for the TrCHs of a CCTrCH for a particular frame is denoted as a Transport Format Combination (TFC).
Receiving station processing is facilitated by the transmission of a Transport Format Combination Indicator (TFCI) for a CCTrCH. 3GPP optionally provides for “blind transport format detection” by the receiving station, in which case the receiving station considers the potential valid TFCIs. Where there is only one valid TFCI, that TFCI is used in either case.
In 3GPP, time slot transmissions are made in predefined bursts where the transmitted physical channel data is divided into a beginning time slot portion and an ending time slot portion. A selected midamble is included between the two physical channel data portions. The TFCI is currently specified as transmitted in two parts on either side of the midamble and also between the two physical channel data portions. Two examples from 3GPP TR 25.944 V3.5.0 are illustrated in FIGS. 3 and 4 respectively where the block labeled MA represents the midamble and the block labeled T represents the parts of the TFCI. In FIG. 4, the CCTrCH is mapped to two physical channels, but only one physical channel includes the TFCI.
FIGS. 5A, 5B and 6 are diagrams of channel coding and multiplexing examples in accordance with 3GPP Frequency Division Duplex (FDD) specifications.
The various encoding steps implemented in communication systems play a key role in both performance and capacity of a wireless telecommunications systems. In particular, the turbo coding of the data being processed for wireless transmission plays a significant role for both TDD and FDD communications in a 3GPP system.
Turbo coding principles have found widespread applications in information theory and, in part, have entered into mainstream telecommunication theory and practice. These principles are used in error control, detection, interference suppression, equalization, and other communications-related areas. Turbo codes are a form of parallel, recursive systematic convolution codes, which can be used for channel coding and decoding in order to detect and correct errors that may occur in the transmission of digital data through different channels. Turbo codes are particularly useful for data transfers in which, under certain conditions, the data transfer rate can approach the theoretical limits of Shannon's Law. These favorable conditions generally include large block size transfers, which are particularly useful in mobile communications.
FIG. 7 shows how particular codes created by puncturing exhibit poorer than expected performance. As much as a 4 dB loss can be measured in the critical Signal-to-Noise Ratio (SNR) value.
Typically, high-rate Turbo codes are created by puncturing (i.e., eliminating) parity bits of a lower-rate code until the desired code rate is attained. Particular codes created by puncturing exhibit poorer than expected performance due to certain punctured bit patterns. Because the recursive encoding blocks in a Turbo encoder have an infinite impulse response, information about each systematic bit is distributed across many of the parity bits.
In any error control coding scheme that employs puncturing, the location of the punctured bits will have an impact on performance. This is because puncturing strings of successive bits can be viewed as burst errors by the decoder. All error control mechanisms can only correct burst errors that are less than some threshold. Therefore, it is important when designing the puncturing scheme that the burst error correcting abilities of the code be considered. In the absence of specific knowledge of the error control coding scheme, a good rule is to minimize the maximum string of punctured bits. For high coding rates this corresponds to distributing the non-punctured bits uniformly across the transmitted block. Puncturing schemes that uniformly distribute the non-punctured bits can deleteriously interact with certain error control codes, causing a degradation of decoder performance.
Because the recursive encoding blocks in the Turbo encoder have infinite impulse response, information about each systematic bit is distributed across many of the parity bits. The impact of certain periodic non-puncture patterns in the parity bits can be qualitatively illustrated by considering how much information remains in the surviving parity bits.
Regions where performance of the punctured Turbo code is degraded can be determined by measuring how close the puncturing pattern is to being periodic with period related to the period of the semi-periodic impulse response of the recursive encoding blocks of the Turbo encoder.
For a 3GPP Turbo encoder, the constituent recursive encoders have an impulse response that is periodic with a period of 7 symbols for positive time (semi-periodic). This can readily be seen by interpretation of the encoder as an M-sequence generator, i.e., if the shift register starts in the zero state and a one is applied only at t=0, then the encoder is exactly a Linear Feedback Shift Register (LFSR) with an associated 3rd order primitive polynomial and initial state {1 0 0}, thus a period 23-1=7 M-sequence is generated for positive time.
The encoder is a Linear Time Invariant (LTI) system on a binary field. Therefore, the output of the encoder is a sum of shifted versions of the impulse response of the encoder, each shifted impulse response corresponding to the locations of the 1's in the TB. If we consider an input that is all 0's for t>T, then the output of the constituent recursive encoding block will also be semi-periodic for t>T.
Certain non-puncturing periods may result in a loss of distributed information about a small group of bits across the set of parity bits. For example, let the TB consist of 7 bits followed by many zeros. Now consider the problem of trying to determine the seven bits by observation of the output of one encoder after heavy puncturing. Each observation is made at the output is a sum of a subset of the 7 bits, the subset being determined by the non-puncture period and the impulse response of the recursive encoding block. For most non-puncture patterns (those that have a period relatively prime with the period of the semi-periodic impulse response), sums over 7 different subsets can eventually be observed. Therefore, a system of 7 equations with 7 unknowns can be formed. Assuming they are linearly independent, the values of the 7 bits may be determined. However, consider the case where the non-puncture period is simple (one surviving parity bit per period) and the same as the period of the recursive encoding block, 7. Then every observation for t>6 is the sum of the same subset of the 7 bits and so no new information is obtained, i.e., a rank-1 system of equations is formed and a unique solution does not exist. This is due to the periodic nature of the signal. When the non-puncture period is relatively prime with the period of the recursive encoding block, a series of observations of the parity bits will eventually form a rank-7 system of equations. For our 7-bit group, this is sufficient to uniquely determine the bits, i.e., information sufficient to determine the bits are distributed across the surviving parity bits. When the periods are not relatively prime, the rank of the system becomes L/K where L is the period of the recursive encoding block and K is the Greatest Common Divider (GCD) of L and N where N is the period of the non-puncture pattern.
In the above illustration, a long sequence of zeros after the small group of bits was supposed for clarity sake. However, allowing additional groups of bits to follow the first group does not add to the distributed information about earlier groups. This can be seen from the causality of the system.
It is also possible that some distributed information is lost even for non-simple periods, e.g., consider the case where the non-puncture pattern alternates between a simple period of three and four. This results in a period 7 non-puncture pattern but with two surviving parity bits per period. The same argument above leads to a rank-2 system of seven equations which is still insufficient to uniquely determine the group of bits, but does reduce the dimension of the space they may span. Clearly, some information about the small group of bits is lost for some non-punctured patterns.
In order to obtain adequate performance, it is necessary to detect, avoid and/or correct the problematic puncturing patterns in the parity bit streams without having to avoid code rates. Typically, problematic interactions occur between the Turbo coder output and puncturing in the rate matching stages.
It would be desirable to have a method for creating high-rate Turbo codes that avoids problematic interactions by modifying the puncturing patterns.